interface CommonInterface {
  [key: string]: any;
  getValue?: () => Object
}
interface DecodingOptions {
  editable: boolean;
  desiredPixelFormat: number;
}
interface ListCommonInterface {
  name: string | number;
  type: string | number;
}

interface ListItemInterface {
  name?: string;
  type?: string;
  activeType?: string;
  list?: ListCommonInterface[];
  click?: (listItem: ListItemInterface, item: ListCommonInterface) => void;
}

interface ParamsInterface {
  type?: string,
  click: Function
}

interface PointsInterface {
  x: number,
  y: number,
  lineWidth?: number,
  strokeStyle?: string
}

interface Options {
  offset?: number;
  length?: number;
}

export {
  CommonInterface,
  DecodingOptions,
  ListCommonInterface,
  ListItemInterface,
  ParamsInterface,
  PointsInterface,
  Options
}